package it.pecuswap.backend.entities;

// Generated 31-dic-2014 16.28.33 by Hibernate Tools 4.0.0

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Thread generated by hbm2java
 */
@Entity
@Table(name = "thread")
public class Thread implements java.io.Serializable {

	private static final long serialVersionUID = -8336879235471059610L;
	private long idThread;
	private Forum forum;
	private Utenti utenti;
	private StatiThread statiThread;
	private String titolo;
	private String descrizione;
	private Date dataCreazione;
	private Date dataUltimaModifica;
	private Long idUtenteUltModifica;
	private Set<MessaggiForum> messaggiForums = new HashSet<MessaggiForum>(0);

	public Thread() {
	}

	public Thread(long idThread) {
		this.idThread = idThread;
	}

	public Thread(long idThread, Forum forum, Utenti utenti,
			StatiThread statiThread, String titolo, String descrizione,
			Date dataCreazione, Date dataUltimaModifica,
			Long idUtenteUltModifica, Set<MessaggiForum> messaggiForums) {
		this.idThread = idThread;
		this.forum = forum;
		this.utenti = utenti;
		this.statiThread = statiThread;
		this.titolo = titolo;
		this.descrizione = descrizione;
		this.dataCreazione = dataCreazione;
		this.dataUltimaModifica = dataUltimaModifica;
		this.idUtenteUltModifica = idUtenteUltModifica;
		this.messaggiForums = messaggiForums;
	}

	@Id
	@Column(name = "id_thread", unique = true, nullable = false)
	public long getIdThread() {
		return this.idThread;
	}

	public void setIdThread(long idThread) {
		this.idThread = idThread;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_forum")
	public Forum getForum() {
		return this.forum;
	}

	public void setForum(Forum forum) {
		this.forum = forum;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_utente_creatore")
	public Utenti getUtenti() {
		return this.utenti;
	}

	public void setUtenti(Utenti utenti) {
		this.utenti = utenti;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_stato_thread")
	public StatiThread getStatiThread() {
		return this.statiThread;
	}

	public void setStatiThread(StatiThread statiThread) {
		this.statiThread = statiThread;
	}

	@Column(name = "titolo")
	public String getTitolo() {
		return this.titolo;
	}

	public void setTitolo(String titolo) {
		this.titolo = titolo;
	}

	@Column(name = "descrizione")
	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_creazione", length = 29)
	public Date getDataCreazione() {
		return this.dataCreazione;
	}

	public void setDataCreazione(Date dataCreazione) {
		this.dataCreazione = dataCreazione;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "data_ultima_modifica", length = 29)
	public Date getDataUltimaModifica() {
		return this.dataUltimaModifica;
	}

	public void setDataUltimaModifica(Date dataUltimaModifica) {
		this.dataUltimaModifica = dataUltimaModifica;
	}

	@Column(name = "id_utente_ult_modifica")
	public Long getIdUtenteUltModifica() {
		return this.idUtenteUltModifica;
	}

	public void setIdUtenteUltModifica(Long idUtenteUltModifica) {
		this.idUtenteUltModifica = idUtenteUltModifica;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "thread")
	public Set<MessaggiForum> getMessaggiForums() {
		return this.messaggiForums;
	}

	public void setMessaggiForums(Set<MessaggiForum> messaggiForums) {
		this.messaggiForums = messaggiForums;
	}

}
